<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=877072
-->
<head>
  <title>Test for Bug 877072</title>
  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=877072">Mozilla Bug 877072</a>

  <script type="text/javascript">
    SimpleTest.waitForExplicitFinish();
    var counter = 0;
    var fcounter = 0;
    var order = [];
    function loaded() {
      counter++;
    }
    function failed() {
      fcounter++;
    }
  </script>

<!--

Master -> c1 -> ... -> C10
|  |                    |
|  - - -> D             |
|         ^             |
|         |             |
 - - - -> E < - - - - - -

This test is for testing ImportLoader::UpdateDependants.Because of the long
chain to C10, it's very likely that C10->E will be the last edge the ImportLoaders
find. At that point it won't only have to update E but also its subimport D.

-->

  <link rel="import" href="imports/file_importC1.html" onload="loaded()" onerror="failed()"></link>
  <link rel="import" href="imports/file_importD.html" onload="loaded()" onerror="failed()"></link>
  <link rel="import" href="imports/file_importE.html" onload="loaded()" onerror="failed()"></link>

  <script type="text/javascript">
    is(counter, 14, "Imports are loaded"); // 12 imports but 14 link imports...
    is(fcounter, 0, "No error in imports");
    var expected = ["D", "E", "C10", "C9", "C8", "C7", "C6", "C5", "C4", "C3", "C2", "C1"];
    for (i in expected)
      is(order[i], expected[i], "import " + i + " should be " + expected[i]);
    SimpleTest.finish();
  </script>
</body>
</html>
